package personal.dao.accounting;

import java.util.List;

import personal.domain.accounting.MonthwiseCalendar;


public interface MonthwiseCalendarDAO {
	/**
	 * Saves (insert or update) a monthwise calendar.
	 * @param calendar - Monthwise calendar to be saved.
	 * @return MonthwiseCalendar with generated calendar id (for insert).
	 */
	public MonthwiseCalendar saveMonthlyCalendar(MonthwiseCalendar calendar);
	/**
	 * Finds and returns a list of monthwise calendars from database matching year and month of input calendar.
	 * @param calendar - MonthwiseCalendar. Provide either year or both year and month to search.
	 * @return List<MonthwiseCalendar> - Matching calendars
	 */
	public List<MonthwiseCalendar> getMonthwiseCalendars(MonthwiseCalendar calendar);
	/**
	 * Returns the list of calendar ids for a list of calendars.
	 * @param calendars - List<MonthwiseCalendar>. List of calendars for which ids are to be returned.
	 * @return - List<Long>. List of calendar ids.
	 */
	public List<Long> getMonthwiseCalendarIds(List<MonthwiseCalendar> calendars);
}
